, , , , ,

Comment envoyer l’IP de sa box automatiquement par courriel

0. Pré-requis : savoir envoyer un courriel par SMTP en ligne de commande

1. Envoyer l'IP externe de sa box par courriel dans un script

a. Récupérer l'IP externe de sa box

GET whatismyip.org
nano ~/getip
GET whatismyip.org > .myip
echo "" >> .myip
sleep 1
GET whatismyip.org >> .myip
echo "" >> .myip
sleep 1
GET whatismyip.org >> .myip
echo "" >> .myip
sh ~/getip
cat ~/.myip
92.122.18.135
92.122.18.135
92.122.18.135

b. Envoyer son IP de box à son courriel au bureau

par msmtp
cat ~/.myip | msmtp johnny@whitehouse.gov
par ssmtp
cat ~/.myip | mail johnny@whitehouse.gov
Sans préciser Subject:DeQuoiOnParle le message n'aura pas de sujet. Il faut donc prévoir de le rajouter en tête du fichier ~/.myip

c. Compléter le script : récupérer l'IP ET l'envoyer

Attention, seule la première ligne ne contient qu'un signe > (ce qui crée ou écrase le fichier). Toutes les autres lignes contiennent 2 signes » (ce qui complète un fichier existant, ou le crée sinon).
nano ~/getip
Subject:MaBoxMeParle > .myip
GET whatismyip.org >> .myip 
echo "" >> .myip
sleep 1
GET whatismyip.org >> .myip
echo "" >> .myip
sleep 1
GET whatismyip.org >> .myip
echo "" >> .myip
cat .myip | msmtp johnny@whitehouse.gov
chmod 700 ~/getip

Utilisation

sh ~/getip

Vérification

2. Automatisation de l'envoi

a. Par la crontab

Le système crontab intégré à unix/linux permet une programmation simple de l'exécution de commandes et scripts.

Modification de la crontab

crontab -l > cron
On évite systématiquement l'édition par la commande crontab -e, parce que la perte de 50 lignes de programmation sur un serveur de production, ça fait toujours chaud aux oreilles !
nano cron
23 8,12,15,18 1-5 * * sh /home/johnny/getip
# à 08:23 12:23 15:23 et 18:23, du 1er au 5ème jour de la semaine
# parce que les soirs et week-end je suis à la maison
# et que c'est encore plus simple de récupérer mon IP

Injection des modifications de la crontab

crontab ~/cron
Vérification de la crontab
crontab -l
...
23 8,12,15,18 1-5 * * sh /home/johnny/getip
...

FIXME (23 8,12,15,18 1-5 * *) donne bien les jours 1 à 5 dans la semaine alors que (23 8,12,15,18 * * 1-5) donne les jours 1 à 5 du mois

Nettoyage
rm ~/cron

b. Par autre chose que la crontab ...

Partie à compléter
Remarques :
  • Si l'envoi répété de l'IP sature votre boîte de courriel, à vous de modifier la programmation.

Références

Contributeurs

kerkael création de la page le 23/08/2009